Traditional raptor decoders, such as described in 3GPP TS 26.346: “Multimedia Broadcast/Multicast Service (MBMS); Protocols and codecs”, version 7.8.0, are two stage decoders. The disadvantage of such a staged process appears when the system packet erasure rate is low (i.e., number of erased source symbols is small). Even if only one source symbol is erased during the transmission, the decoder still needs to compute all the intermediate symbols to recover the erased source symbol. Moreover the computational complexity of this staged decoder is dominated by the computational complexity needed to compute the intermediate symbols. Consequently, the computational complexity of the staged decoder does not depend on the packet erasure rate.
These traditional decoders work fine when the erasure rate is high. However, in a typical wireless communication link that is protected by a turbo code at the physical layer, the packet erasure rate is approximately one percent (1%). In such a low erasure rate scenario, the computation complexity needed to recover the 1% of the source symbols is approximately the same as that needed to recover all of the source symbols. Accordingly, the efficiency of such a decoder, when need to recover in a system with a low erasure rate, is low.
An additional drawback in the existing 3GPP raptor code, is the existence of the high density Half-code as part of its generating matrix. This is because the used decoder needs to find the inverse of this generating matrix. Note that this matrix is, in general, a sparse matrix, but has a high density of non-zero elements (ones) in the portion related to the Half-code. As the complexity of finding the inverse of a sparse matrix is proportional to the number of non-zero elements in it, one can reduce the computational complexity by removing the Half-code segment. One more drawback in the existing 3GPP raptor code is that it lacks the ability to provide unequal error protection to different classes of packets in the source block (e.g., base-layer packets and enhancement-layer packets).